package challenge.计挑赛._2021区域赛;

import java.util.Scanner;
/*
某游戏公司设计了一个奖励活动，给N个用户(1≤N≤10^7)连续编号为1到N，依据用户的编号S发放奖励。
发放奖励规则为：
公司随机设定三个非零正整数x，y，z。
如果S同时是x、y的倍数，奖励2张卡片；
如果S同时是y、z的倍数，奖励4张卡片；
如果S同时是x、z的倍数，奖励8张卡片；
如果S同时是x，y，z的倍数奖励10张卡片；
其他奖励1张卡片；
以上奖励不能同时享受。满足多个奖励条件时，以最高奖励为准。
求任意连续的L个用户，使得这L个用户得到的奖励总和最多，输出奖励总和的值。

输入说明：第一行，输入N，L，以空格隔开；（1≤L≤N≤10^7）
第二行，输入x，y，z，以空格隔开；（1≤x,y,z≤L）
输出说明：符合条件的连续L个用户的奖励总和的最大值。
输入样例：40 7
3 5 2
输出样例：24
*/
public class D_最优区间 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt(), l = sc.nextInt();
		int x = sc.nextInt(), y = sc.nextInt(), z = sc.nextInt();
		
		int cur = 0;
		for(int i = 1; i <= l; i++) {
			cur += get(i, x, y, z);
		}
		int res = cur;
		
		int r = l + 1;
		while(r <= n) {
			cur += get(r, x, y, z);
			cur -= get(r - l, x, y, z);
			res = Math.max(res, cur);
			r++;
		}
		System.out.println(res);
	}
	static int get(int i, int x, int y, int z) {
		if(i % x == 0 && i % y == 0 && i % z == 0) {
			return 10;
		}
		if(i % x == 0 && i % z == 0) {
			return 8;
		}
		if(i % y == 0 && i % z == 0) {
			return 4;
		}
		if(i % x == 0 && i % y == 0 ) {
			return 2;
		}
		return 1;
	}
}